package com.example.controller;

import cn.hutool.core.util.ObjectUtil;
import com.example.common.Result;
import com.example.common.RoleEnum;
import com.example.entity.Account;
import com.example.service.AdminService;
import com.example.service.StudentService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 登录权限者 admin和Student
 */
@RestController
public class WebController {

    @Resource
    private AdminService adminService;

    @Resource
    private StudentService studentService;
    /**
     * 默认请求接口
     */
    @GetMapping("/")
    public Result hello() {
        return Result.success();
    }


    /**
     * 登录
     * @return
     * @RequestBody 接收表单传来的数据
     * 通过Account 去接受表单数据
     */
    @PostMapping("/login")
    public Result login(@RequestBody Account account) { // 四个数据
         Account dbAccount;
        if (RoleEnum.ADMIN.name().equals(account.getRole())) { // 管理登录
             dbAccount = adminService.login(account);
        } else if (RoleEnum.STUDENT.name().equals(account.getRole())) { // 学生登录
             dbAccount = studentService.login(account);
        } else {
            return Result.error("角色错误");
        }
        return Result.success(dbAccount);
    }
/*
    @PostMapping("/login")
    public Result login(@RequestBody Account account) {
        Account dbAccount = adminService.login(account); // 只需要拿到三个数据
        return Result.success(dbAccount);
    }*/


    /**
     * 注册接口
     * @param account
     * @return
     */
    @PostMapping("/register")
    public Result register(@RequestBody Account account) { // 四个数据
        if (ObjectUtil.isEmpty(account.getUsername()) || ObjectUtil.isEmpty(account.getPassword())) { // 账号或者密码为空
            return Result.error("账号密码必填"); // 这里做一个校验
        }
       studentService.register(account);
        return Result.success();
    }

}
